﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data; 
using System.Data.OleDb;
using System.Windows.Forms;
using System.Configuration;

namespace QLHXNK
{
    public partial class MyDataTransfer
    {
        private static OleDbConnection objConnect;
       // private DataTable objDataTable;
        //Tạo Kết nối và hủy kết nối"
        /// <summary>
        /// Tạo một Connection
        /// </summary>
        private static void subCreateConnect()
        {
            String accessFilePath = String.Empty;
            accessFilePath = ConfigurationSettings.AppSettings["DatabasePath"];//@"E:\Mat Troi Viet\MTV\QLHXNK\QLHXNK\Database\phoenix.mdb;";//Application.StartupPath+ @"\Database\phoenix.mdb;";

            String varChuoiConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + accessFilePath + "; "+
                        " Jet OLEDB:Database Password = cC26AbB;" +
                         " User ID = Admin";
           
            objConnect = new OleDbConnection(varChuoiConnect);//Tạo đối tượng Connect
          
            objConnect.Open(); //Mở kết nối
        }
        /// <summary>
        /// Hủy kết nối
        /// </summary>
        private static void subDestroyConnect()
        {
            objConnect.Close(); //Đóng kết nối
            objConnect.Dispose();//Giải phóng tài nguyên
            objConnect = null; //Hủy đối tượng

        }

        public static int getLastID(String tableName)
        {
            if (tableName == "")
                return -1;

            DataTable table = executeQueryCommand(String.Format("SELECT ID FROM {0} WHERE ID = (SELECT MAX(ID) FROM {0})", tableName));
            if (table != null && table.Rows.Count == 1)
            {
                try
                {
                    return (int)table.Rows[0]["ID"];
                }
                catch
                {
                    return -1;
                }
            }

            return -1;
        }

        public static DataTable executeQueryCommand(String varSelectSQL)
        {
            try
            {
                //Tạo kết nối tới file Access 
                subCreateConnect();

                //Truy vấn dữ liệu 
                OleDbCommand objCommand = new OleDbCommand(varSelectSQL, objConnect);

                //Tạo DataReader nhận dữ liệu trả về 
                OleDbDataReader objReader = objCommand.ExecuteReader();
               
                //Tạo đối tượng DataTable và Load DataReader vào 
                DataTable objDataTable = new DataTable();
                objDataTable.Load(objReader);

                //Hủy kết nối:
                subDestroyConnect();

                return objDataTable;
            }
            catch
            {

                return null;//Lỗi kết nối
            }
        }
        public static int executeNonQueryCommand(String varNonQuerySQL)
        {
            try
            {
                //Tạo kết nối tới file Access 
                subCreateConnect();

                //Truy vấn dữ liệu 
                OleDbCommand objCommand = new OleDbCommand(varNonQuerySQL, objConnect);

                //Số rows affected:
                int noAffectedRows = objCommand.ExecuteNonQuery();

                //Hủy kết nối:
                subDestroyConnect();

                return noAffectedRows;
            }
            catch
            {
                return -1;//Lỗi kết nối
            }
        }
    }
}
